Extensible ordered information within a markup language document

ABSTRACT

A markup language document includes a data structure includes a plurality of parameter tag statements. Each parameter tag statement includes a first field containing data representing a variable name and a second field containing data representing a command associated with the variable name. Each variable name indicates an order of execution of its associated command relative to the other commands.

RELATED APPLICATIONS

This is a continuation of U.S. application Ser. No. 09/907,298, filedJul. 17, 2004, titled “EXTENSIBLE ORDERED INFORMATION WITHIN A MARKUPLANGUAGE”, which is a continuation of U.S. Pat. No. 6,317,760, filedJan. 14, 1998, titled EXTENSIBLE ORDERED INFORMATION WITHIN A WEB PAGE”,both of which are herby incorporated herein by reference.

FIELD OF THE INVENTION

This invention relates to computer programming, and more particularly,to a control and method for retrieving information in an ordered mannerfrom an extensible set of information defined within a markup languagedocument.

BACKGROUND OF THE INVENTION

The Internet and the World Wide Web are rapidly expanding, withbusinesses and individuals hosting their own Web pages. This has createda demand for richer Web page capabilities, especially in the area ofgraphics and multimedia. However, the design and programming of theenhanced capability Web pages must remain simple, as not all Web pageowners are sophisticated computer users. Nor should the use of graphicsin a Web page require using external applications to program and debugthese enhanced capabilities, which could greatly increase the cost of asolution. Instead, a user-friendly solution is desirable, where astandard text editor could be used and with human readable commands.

Most files downloaded and opened with a Web browser are pages formattedwith Hypertext Markup Language (HTML). Native HTML provides the basicfoundation for defining a Web page, although it does not specify amethod for storing and retrieving a sequential series of extensibleinformation, such as vector graphics commands and data. As such,graphics commands and data are typically stored in external files in aproprietary format which are accessed by the Web control via a UniformResource Link (URL). To create these graphics, graphics design programsare available to help the user, but these are an additional expense andrequire running the design program to modify the graphics. Furthermore,the graphics information is typically stored in a non-human readable(binary) format, which makes it difficult to debug because a user cannot merely review and edit the HTML source code. Additionally, increasedoverhead, such as processing and network costs, are encountered when URLcalls are made to process or execute external files.

Web controls and HTML conventions do not provide for reading definedinformation back in an ordered way. The standard definitions of HTML andthe semantics of the HTML commands do not provide a method forretrieving a sequential series of commands or data, such as inquiring asto the value of the first variable defined, then the value of the secondvariable defined, etc. Rather, a Web page has a random, non-orderedaddress space, whereby the value of a variable is retrieved byspecifically asking for it by name. Moreover, there is no concept of theordering of variables inherent in the definition of HTML variables.Thus, a user cannot define a series of information using HTML in which acontrol can then sequentially read and process this data or executethese commands. This limits the capabilities of Web pages, including theavailability of graphics capabilities in which performing a series ofoperations (such as linear transformations) is commonly needed.

SUMMARY OF THE INVENTION

According to the invention, a method provides an extensible ordered setof data and commands in a Web page, and a control reads and stores thisinformation, and subsequently processes the series of information. Thus,without having to extend HTML or provide an alternate language such asVirtual Reality Modeling Language (VRML), the HTML source of a Web pageincludes a series of commands which are read, stored, and subsequentlyexecuted in a specified order by the control, such as a browser. In thismanner, a sequence of graphics commands can be specified in the ASCIIsource, with these commands being executed by a Web control at somelater time in the predefined order.

In accordance with the invention, a set of Web page variables are firstdefined, whose names correspond with a naming convention to which apredetermined ordering is attached. The commands and data to beprocessed are stored as the values of these variables. A Web controlthen accesses these variables and processes the statements storedtherein in the order determined by the variable naming convention.Furthermore, by defining an open-ended naming convention, the control isnot required to know the number of variables to process. Rather, thecontrol processes the sequence in accordance with the naming conventionuntil such time as one of the variables is not defined, indicating theend of the sequence.

More specifically, an embodiment of the invention provides for definingan extensible, ordered series of information within the confines of anHTML document by exploiting the HTML capability to define an open-endedset of property names with values using the HTML PARAM Tag statement. Inaddition, the semantics of a property value are modified to be that of acommand and/or data to be executed or processed, rather than a displayproperty of the object in which it is defined.

In keeping with the invention, the naming convention provides thedesired ordering for the information stored in the Web page variables.One embodiment uses the format of a constant alphabetic prefix appendedwith a numerical suffix, where the values of the suffix are sequentialin nature. For instance, a series of variable names could be Line0001,Line0002, Line0003, etc. As readily evident to one skilled in the art,numerous other naming schemes could be adopted, such as usingalphanumeric characters instead of numbers or using a NULL prefix, whichwould be in keeping with the spirit, character, and scope of theinvention.

It is further contemplated that Web page variables, including thosedefined by PARAM Tag statements, could be used to define within the Webobject the syntax of the particular naming convention to be used. Thiscould include setting the prefix, suffix, and numeric spacing betweenvariables (e.g., 1, 10), as well as the name of the first variable ofthe extensible sequence. Moreover, multiple series of commands can bedefined within the same object by using a different naming convention,such as using two different prefixes.

Once a control encounters Web page variables defined in accordance withthe naming convention, the control will subsequently process theinformation in the order determined according to the naming conventionemployed. In one embodiment, the control will first retrieve and parseall the commands stored in the Web page variables to build a tablereflective of the sequence in which to process the commands. In thismanner, the control then can more efficiently interpret and execute thecommands. The values of these variables are retrieved until a NULL valueis retrieved for the next variable name according to the namingconvention, which indicates the end of the series of information.

Thus, by redefining the meaning of HTML property values and definingproperty variables according to the naming convention, a method forproviding an open-ended, extensible series of information within a HTMLdocument is realized. Furthermore, this method does not require anexpansion of HTML, the information is stored in a single HTML documentwhich is human readable, loaded with a single file load operation,directly extensible by the author, created and edited using a standardASCII text editor, or produced by most any development tool includingbeing downloaded and created from the server via an Active Server File(ASP) or other server side script (e.g., through a language thatsupports Common Gateway Interface (CGI)).

BRIEF DESCRIPTION OF THE DRAWINGS

The appended claims set forth the features of the present invention withparticularity. The invention, together with its advantages, may be bestunderstood from the following detailed description taken in conjunctionwith the accompanying drawings of which:

FIG. 1 is a block diagrams of an exemplary operating environment inwhich the invention may be implemented, including a computer system forproviding the extensible ordered information within a Web page inaccordance with the invention;

FIG. 2A is a diagram showing the HTML PARAM Tag statement;

FIG. 2B is a diagram illustrating a sample object definition of anextensible set of information for retrieval in an ordered manner;

FIG. 3 is a high-level flow diagram describing the steps for defining anextensible set of information and for retrieval and processing theinformation in an ordered manner;

FIG. 4 is a block diagram of a table for storing the information in anordered manner during processing; and

FIG. 5 present descriptions, syntax, parameters and graphics methods ofone embodiment in accordance with the present invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

FIG. 1 and the following discussion are intended to provide a brief,general description of a suitable computing environment in which theinvention may be implemented. Although not required, the invention willbe described in the general context of computer-executable instructions,such as program modules, being executed by a personal computer.Generally, program modules include routines, programs, objects,components, data structures, etc. that perform particular tasks orimplement particular abstract data types. Moreover, those skilled in theart will appreciate that the invention may be practiced with othercomputer system configurations, including hand-held devices,multiprocessor systems, microprocessor-based or programmable consumerelectronics, network PCs, minicomputers, mainframe computers, and thelike. The invention may also be practiced in distributed computingenvironments where tasks are performed by remote processing devices thatare linked through a communications network. In a distributed computingenvironment, program modules may be located in both local and remotememory storage devices.

With reference to FIG. 1, an exemplary system for implementing theinvention includes a general purpose computing device in the form of aconventional personal computer 20, including a processing unit 21, asystem memory 22, and a system bus 23 that couples various systemcomponents including the system memory to the processing unit 21. Thesystem bus 23 may be any of several types of bus structures including amemory bus or memory controller, a peripheral bus, and a local bus usingany of a variety of bus architectures. The system memory includes readonly memory (ROM) 24 and random access memory (RAM) 25. A basicinput/output system 26 (BIOS) containing the basic routines that helpsto transfer information between elements within the personal computer20, such as during start-up, is stored in ROM 24. In one embodiment ofthe present invention, the control and extensible ordered set of dataand commands are stored in system memory 22, and the control andcommands are executed by processing unit 21. The personal computer 20further includes a hard disk drive 27 for reading from and writing to ahard disk, not shown, a magnetic disk drive 28 for reading from orwriting to a removable magnetic disk 29, and an optical disk drive 30for reading from or writing to a removable optical disk 31 such as a CDROM or other optical media. The hard disk drive 27, magnetic disk drive28, and optical disk drive 30 are connected to the system bus 23 by ahard disk drive interface 32, a magnetic disk drive interface 33, and anoptical drive interface 34, respectively. The drives and theirassociated computer-readable media provide nonvolatile storage ofcomputer readable instructions, data structures, program modules andother data for the personal computer 20. Although the exemplaryenvironment described herein employs a hard disk, a removable magneticdisk 29 and a removable optical disk 31, it should be appreciated bythose skilled in the art that other types of computer readable mediawhich can store data that is accessible by a computer, such as magneticcassettes, flash memory cards, digital video disks, Bernoullicartridges, random access memories (RAMs), read only memories (ROM), andthe like, may also be used in the exemplary operating environment.

A number of program modules may be stored on the hard disk, magneticdisk 29, optical disk 31, ROM 24 or RAM 25, including an operatingsystem 35, one or more application programs 36, other program modules37, and program data 38. A user may enter commands and information intothe personal computer 20 through input devices such as a keyboard 40 andpointing device 42. Other input devices (not shown) may include amicrophone, joystick, game pad, satellite dish, scanner, or the like.These and other input devices are often connected to the processing unit21 through a serial port interface 46 that is coupled to the system bus,but may be collected by other interfaces, such as a parallel port, gameport or a universal serial bus (USB). A monitor 47 or other type ofdisplay device is also connected to the system bus 23 via an interface,such as a video adapter 48. In addition to the monitor, personalcomputers typically include other peripheral output devices (not shown),such as speakers and printers.

The personal computer 20 may operate in a networked environment usinglogical connections to one or more remote computers, such as a remotecomputer 49. The remote computer 49 may be another personal computer, aserver, a router, a network PC, a peer device or other common networknode, and typically includes many or all of the elements described aboverelative to the personal computer 20, although only a memory storagedevice 50 has been illustrated in FIG. 1. The logical connectionsdepicted in FIG. 1 include a local area network (LAN) 51 and a wide areanetwork (WAN) 52. Such networking environments are commonplace inoffices, enterprise-wide computer networks, intranets and the Internet.

When used in a LAN networking environment, the personal computer 20 isconnected to the local network 51 through a network interface or adapter53. When used in a WAN networking environment, the personal computer 20typically includes a modem 54 or other means for establishingcommunications over the wide area network 52, such as the Internet. Themodem 54, which may be internal or external, is connected to the systembus 23 via the serial port interface 46. In a networked environment,program modules depicted relative to the personal computer 20, orportions thereof, may be stored in the remote memory storage device. Itwill be appreciated that the network connections shown are exemplary andother means of establishing a communications link between the computersmay be used.

Turning now to FIG. 2A, shown is a standard Hypertext Markup Language(HTML) PARAM Tag statement 200. A PARAM Tag statement is conventionallyused to set the property values for a given Web page object and has upto four parameters, two of which are used in the PARAM Tag statement200. FIG. 2A also illustrates the syntax of the PARAM Tag statement ascurrently defined with HTML. The property name 230 is a text stringidentifying the variable name, and property value 240 is a text stringidentifying the value to which to set the property name 230.

By definition, HTML tags are codes enclosed in angle brackets that areused by a Web browser to determine the structure and appearance of anHTML document, such as graphic elements and text formatting. A PARAMdefinition has limited scope, as it is only valid within an OBJECTelement of an ActiveX object, within an APPLET of a JAVA applet, orwithin an EMBED tag. A control cannot ask for a list of all availableproperty values; rather it can only ask for the value for a specifiedproperty name, and it receives the value or an indication that therequested property name has not been defined.

Shown in FIG. 2B is an example object 250 which contains a sequence ofcommands to be executed in a particular order. PARAM Tag statements(260, 270, 280, 290) define four variables Line0001, Line0002, Line0003,and Line0004 whose values correspond respectively to the four vectorgraphics commands of SetLineStyle(0), SetFillStyle(1), SetFillColor(0,255, 0), and Rect(−25,−25,50,50,0). For convenience, the variables arenamed using the prefix of “Line” with a suffix of a four digit numberbeginning with “0001”. By convention, the name of the first variableaccessed is Line0001, with subsequent accesses to the series ofLine0002, Line0003, etc. until a given variable is not defined (i.e., aNULL value is returned). Thus, according to the invention describedherein, the commands defined using PARAM Tag statements are to beexecuted by the Web control in the following order: SetLineStyle(0),SetFillStyle(1), SetFillColor(0, 255, 0), and Rect(−25,−25,50,50,0). InFIG. 2B, the PARAM Tag statements (260, 270, 280, 290) are listed anddefined in the same order in which they are to be executed. This makesit easier for the Web page programmer and human readers to perceive theexecution order of the statements. However, because the naming of thevariables defines the sequence of processing of the commands stored asthe variable values, the ordering of the PARAM Tag statements (260, 270,280, 290) is inconsequential to the order to which they are retrievedand executed by the Web page control.

FIG. 5 further illustrates the definition of an object 250 (FIG. 2B) andPARAM Tag statements 200 (FIG. 2A) by presenting a structured graphicscontrol embodiment in accordance with the present invention. Thestructured graphics control executes graphics methods stored as values240 (FIG. 2A) in PARAM Tag statements 200. A subset of the possiblegraphics methods is listed in FIG. 5. This embodiment is furtherdescribed in “Structured Graphics Control”, Microsoft Developer NetworkLibrary Edition—October 1997, Microsoft Corporation (1997), which ishereby incorporated by reference.

Turning now to FIG. 3, shown is a flow diagram illustrating theprocessing by a control of the information (i.e., commands, data)defined by PARAM Tag statements, such as for the object illustrated inFIG. 2B. This sequence of processing is described below with referenceto display list data structure 400 illustrated in FIG. 4.

Beginning in step 310, a counter variable i is set to 0001, whichcorresponds to the suffix value for the first variable name in thesequence defined by the naming convention. Then, as determined in step320, while there is a variable defined with the property name Line<i>(where “Line” is the prefix as determine in accordance with theinvention, and “<i>” represents the current value of the countervariable i), then in step 325, the value of the variable with theproperty name Line<i> is retrieved, parsed, and added to a datastructure containing the sequence of commands. Finally, in step 330, thecounter variable i is increased by one (in accordance with the exemplarynaming convention), and the retrieving of the remaining defined propertyvariables continues with step 320.

When there is no longer any property variable defined in accordance withthe invention as determined in step 320, processing transfers to step340 which sets the entry at position i of the display list datastructure 400 to NULL to indicate the end of the sequence ofinformation. In step 350, the counter variable i is set to one forprocessing of the commands or data stored in the display list datastructure 400. Next, as determined in step 360, while the entry atposition i of the display list data structure 400 is not NULL, thenprocess the information stored at position i in step 365, and thenincrease the value of i by one in step 370. When a NULL entry isencountered at position i of the display list data structure 400, theend of the series of information has been reached.

Turning now to FIG. 4, shown is a display list data structure 400 whichis in the form of an array, with indices ranging from 1 to n, where n issome number larger than the number of commands defined by the PARAM Tagstatements. The commands are stored in the array in the order in whichthey are to be processed by the Web control. In other words, the firstcommand is located at entry 401 corresponding to index number 1, thesecond command at entry 402 corresponding to index number 2, etc. A NULLentry in the display list data structure 400, such as at entry 415,indicates the end of the sequence of commands.

As shown in FIG. 4, display list data structure 400 has been populatedaccording to the processing defined in the flow diagram of FIG. 3 forthe example OBJECT definition illustrated in FIG. 2. The commands arestored, rather than immediately processed as read, which allows theirprocessing at later times, including redrawing the graphics objectsafter a Web page has been dirtied. As shown, display list data structure400 comprises an array containing the commands defined by the PARAM Tagstatements 260, 270, 280 and 290 from FIG. 2B, which are respectivelylocated in entries 401, 402, 403, and 404 of the array. As would beevident to one skilled in the art, there are many embodiments fordisplay list data structure 400 that are possible without deviating fromthe scope and spirit of the invention. These include using a linkedlist, a two dimensional array contain both the PARAM name and PARAMvalue, or eliminating the display list data structure 400 in itsentirety and processing each piece of information stored as it isretrieved from the variables. In view of the many possible embodimentsto which the principles of our invention may be applied, it should berecognized that the embodiment described herein with respect to thedrawing figures is only illustrative and should not be taken as limitingthe scope of the invention. To the contrary, the invention as describedherein contemplates all such embodiments as may come within the scope ofthe following claims and equivalents thereof.

1. A computer-readable medium having stored therein a data structure foraccess by a computer program, the data structure representing a markuplanguage document including statements defining a plurality of propertyvariables, each of said statements comprising: a first field containingdata representing a name of a property variable; and a second data fieldcontaining data representing a value of the property variable andspecifying a command associated with the property variable, the names ofthe plurality of property variables provided in accordance with anorder-defining naming convention to indicate an execution sequence ofthe commands specified in the respective values of the propertyvariables.
 2. The computer-readable medium of claim 1, wherein themarkup language is the Hypertext Markup Language (HTML).
 3. Thecomputer-readable medium of claim 2, wherein the statements defining theproperty variables represent PARAM elements of the HTML markup languagedocument.
 4. The computer-readable medium of claim 1, wherein thecommands specified in the values of the property variables includecommands for generating graphical images.
 5. A computer-readable mediumhaving stored therein a markup language document defining a datastructure for access by a computer program, the data structurecomprising: a plurality of parameter tag statements, each parameter tagstatement having a first field containing data representing a variablename and a second field containing data representing a commandassociated with the variable name, wherein each variable names indicatesan order of execution of its associated command.
 6. Thecomputer-readable medium of claim 5, wherein the markup languagedocument comprises a Hypertext Markup Language (HTML) document.
 7. Thecomputer-readable medium of claim 5, wherein the parameter tagstatements are arranged in an order conforming to the order of commandexecution indicated by the variable names.
 8. The computer-readablemedium of claim 5, wherein each variable name comprises an alphanumericprefix and a numeric suffix.
 9. The computer-readable medium of claim 5,wherein each variable name includes a numeric portion that indicates anorder of execution of its associated command relative to other commands.10. A method comprising: retrieving a plurality of parameter tagstatements from a markup language document, each parameter tag statementhaving a first field containing data representing a variable name and asecond field containing data representing a command associated with thevariable name; and executing the commands in an execution sequenceindicated by the variable names.
 11. The method of claim 10, whereineach command comprises a graphics method.
 12. The method of claim 10,wherein the markup language document comprises a Hypertext MarkupLanguage (HTML) document.
 13. The method of claim 10, wherein theparameter tag statements are arranged in the markup language document inan order conforming to the order of command execution indicated by thevariable names.
 14. The method of claim 10, wherein each variable namecomprises an alphanumeric prefix and a numeric suffix.
 15. The method ofclaim 10, wherein each variable name includes a numeric portion thatindicates an order of execution of its associated command relative toother commands.